package com.geezdata.cps.sdk3rd.youzan.request;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.geezdata.cps.sdk3rd.youzan.constant.Constants;
import com.geezdata.cps.sdk3rd.youzan.response.YouzanTradesSoldGetResult;


public class YouzanTradesSoldGetRequest extends YouzanRequest<YouzanTradesSoldGetResult> {
    
    // 需要返回的交易对象字段，如tid,title,receiver_city等。
    // 可选值：TradeDetail交易结构体中所有字段均可返回；多个字段用“,”分隔。如果为空则返回所有
	private String fields; 
	
    // 可选值：
    // TRADE_NO_CREATE_PAY（没有创建支付交易）
    // WAIT_BUYER_PAY（等待买家付款）
    // WAIT_GROUP（等待成团，即：买家已付款，等待成团）
    // WAIT_SELLER_SEND_GOODS（等待卖家发货，即：买家已付款）
    // WAIT_BUYER_CONFIRM_GOODS（等待买家确认收货，即：卖家已发货）
    // TRADE_BUYER_SIGNED（买家已签收）
    // TRADE_CLOSED（付款以后用户退款成功，交易自动关闭）
    // ALL_WAIT_PAY（包含：WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY）
    // ALL_CLOSED（所有关闭订单）
	private String status; // 交易状态，默认查询所有交易状态的数据，除了默认值外每次只能查询一种状态。
	
	private Date startCreated; // 交易创建开始时间。查询在该时间之后（包含该时间）创建的交易，为空则不限制
	
	private Date endCreated; // 交易创建结束时间。查询在该时间之前创建的交易，为空则不限制
	
	private Date startUpdate; // 交易状态更新的开始时间。查询在该时间之后（包含该时间）交易状态更新过的交易，为空则不限制
	
	private Date endUpdate; // 交易状态更新的结束时间。查询在该时间之前交易状态更新过的交易，为空则不限制
	
	private Long weixinUserId ; // 微信粉丝ID
	
	private String buyerNick; // 买家昵称
	
	private Long pageNo ;
	
	private Long pageSize;
	
	private Boolean useHasNext;  
	
	{
		methodName = Constants.METHOD_YOUZAN_TRADES_SOLD_GET;
	}

    public String getFields() {
        return fields;
    }

    public void setFields(String fields) {
        this.fields = fields;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getStartCreated() {
        return startCreated;
    }

    public void setStartCreated(Date startCreated) {
        this.startCreated = startCreated;
    }

    public Date getEndCreated() {
        return endCreated;
    }

    public void setEndCreated(Date endCreated) {
        this.endCreated = endCreated;
    }

    public Date getStartUpdate() {
        return startUpdate;
    }

    public void setStartUpdate(Date startUpdate) {
        this.startUpdate = startUpdate;
    }

    public Date getEndUpdate() {
        return endUpdate;
    }

    public void setEndUpdate(Date endUpdate) {
        this.endUpdate = endUpdate;
    }

    public Long getWeixinUserId() {
        return weixinUserId;
    }

    public void setWeixinUserId(Long weixinUserId) {
        this.weixinUserId = weixinUserId;
    }

    public String getBuyerNick() {
        return buyerNick;
    }

    public void setBuyerNick(String buyerNick) {
        this.buyerNick = buyerNick;
    }

    public Long getPageNo() {
        return pageNo;
    }

    public void setPageNo(Long pageNo) {
        this.pageNo = pageNo;
    }

    public Long getPageSize() {
        return pageSize;
    }

    public void setPageSize(Long pageSize) {
        this.pageSize = pageSize;
    }

    public Boolean getUseHasNext() {
        return useHasNext;
    }

    public void setUseHasNext(Boolean useHasNext) {
        this.useHasNext = useHasNext;
    }



	@Override
	public Map<String, Object> getAppParams() {
		Map<String, Object> httpParams = new HashMap<String, Object>();
	    httpParams.put("fields", this.fields);
	    httpParams.put("status", this.status);
	    httpParams.put("start_created", this.startCreated);
	    httpParams.put("end_created", this.endCreated);
	    httpParams.put("start_update", this.startUpdate);
	    httpParams.put("end_update", this.endUpdate);
	    httpParams.put("weixin_user_id", this.weixinUserId);
	    httpParams.put("buyer_nick", this.buyerNick);
	    httpParams.put("page_no", this.pageNo);
	    httpParams.put("page_size", this.pageSize);
	    httpParams.put("use_has_next", this.useHasNext);
        return httpParams;
	}

	@Override
	public Class<YouzanTradesSoldGetResult> getResponseClass() {
		return YouzanTradesSoldGetResult.class;
	}
}

    
    
